package interpreter.main.express;

import interpreter.main.context.Context;

public class CommandExperssion implements IExpressions {
    private final Context context;
    private IExpressions expressions;

    public CommandExperssion(Context context) {
        this.context = context;
        this.pares(this.context);
    }

    /**
     * 解析
     *
     * @param context
     */
    @Override
    public void pares(Context context) {
        //判断当前命令类别，在此只对For和最原始命令进行区分
        if (this.context.equalsWithCommand("FOR")) {
            //创建For表达式进行解析
            expressions = new ForExpression(this.context);
        } else {
            //创建原始命令表达式进行内容解析
            expressions = new PrimitiveExpression(this.context);
        }
    }

    /**
     * 执行方法
     */
    @Override
    public void interpret() {
        //解析内容
        this.expressions.interpret();
    }
}
